import { DeviceEventEmitter } from 'react-native';

import {
  HideGlobalLoadingCmd,
  ShowGlobalLoadingCmd,
  ShowGlobalToastCmd,
} from '@/components';

export namespace Toast {
  /**
   * 全局调起提示消息
   */
  export function toggle(content: string) {
    DeviceEventEmitter.emit(ShowGlobalToastCmd, content);
  }
}
export namespace Loading {
  /**
   * 全局调起Loading弹框
   */
  export function show(content: string) {
    DeviceEventEmitter.emit(ShowGlobalLoadingCmd, content);
  }
  /**
   * 全局隐藏Loading弹框
   */
  export function hide() {
    DeviceEventEmitter.emit(HideGlobalLoadingCmd);
  }
}

// export namespace Sheet {
//   /**
//    * 全局调起ActionSheet
//    */
//   export function toggle(config: TGlobalSheetConfig) {
//     DeviceEventEmitter.emit(ShowGlobalSheetCmd, config);
//   }

//   /**
//    * 全局隐藏ActionSheet
//    */
//   export function hide() {
//     DeviceEventEmitter.emit(HideGlobalSheetCmd);
//   }
//   /**
//    * 同步方式调起一个简易的选项选择器
//    */
//   export async function choose(
//     options: TSheetOption[],
//     config?: TSyncSheetConfig
//   ) {
//     return new Promise((r: (index: number) => void, j) => {
//       const cfg: TGlobalSheetConfig = {
//         options,
//         ...config,
//         onSelect: index => r(index),
//         onCancel: () => j('Sheet Canceled'),
//       };
//       toggle(cfg);
//     });
//   }
// }

// export namespace Task {
//   /**
//    * 全局调起Task 奖励
//    */
//   export function finish(config: TGlobalTaskTipConfig) {
//     DeviceEventEmitter.emit(ShowGlobalTaskTipCmd, config);
//   }
// }

// export namespace DmDatePicker {
//   /**
//    * 全局调起日期选择器
//    */
//   export function toggle(config: TCustomDatePickerConfig) {
//     DeviceEventEmitter.emit(ShowCustomDatePickerCmd, config);
//   }
// }
// export namespace StripePopup {
//   /**
//    * 全局调起Stripe 支付
//    */
//   export function pay(config: TGlobalStripeConfig) {
//     DeviceEventEmitter.emit(ShowGlobalStripeCmd, config);
//   }
//   /**
//    * 同步方式调起一个简易的选项选择器
//    */
//   export async function syncPay(config: TGlobalStripeConfig) {
//     return new Promise((r: (index: number) => void, j) => {
//       const cfg: TGlobalStripeConfig = {
//         ...config,
//       };
//       pay(cfg);
//     });
//   }
//   export function hide() {
//     DeviceEventEmitter.emit(HideGlobalStripeCmd);
//   }
// }
// export namespace MakeToast {
//   /**
//    * 全局调起MakeToast弹框
//    */
//   export function show(content: TGlobalMakeToastConfig) {
//     DeviceEventEmitter.emit(ShowGlobalMakeToastCmd, content);
//   }
//   /**
//    * 全局隐藏MakeToast弹框
//    */
//   export function hide() {
//     DeviceEventEmitter.emit(HideGlobalMakeToastCmd);
//   }
// }

// export namespace BannerAdv {
//   /**
//    * 全局调起横幅弹框
//    */
//   export function show(content: TGlobalBannerAdvConfig) {
//     DeviceEventEmitter.emit(ShowGlobalBannerAdvCmd, content);
//   }
//   /**
//    * 全局隐藏横幅弹框
//    */
//   export function hide() {
//     DeviceEventEmitter.emit(HideGlobalBannerAdvCmd);
//   }
// }
